package iterable_0929;

import java.util.Arrays;

/**
 * 泛型类自定义数组
 */
public class Generic {
    public static void main(String[] args) {
        MyArray<Integer>myArray=new MyArray<>();
        myArray.setValue(0,7);
        myArray.setValue(1,18);
        int ret= myArray.getPosition(1);
        System.out.println(ret);
        Integer[]array={1,2,3,4,5,6,7};
        swap(array,0,1);
        System.out.println(Arrays.toString(array));
        String[]string={"hello","world"};
        swap(string,0,1);
        System.out.println(Arrays.toString(string));
    }
    //泛型方法
    public static <E>void swap(E[]array,int i,int j){
        //静态的泛型方法 需要在static后用<>声明泛型类型参数
        E tmp=array[i];
        array[i]=array[j];
        array[j]=tmp;
    }
}
class MyArray<T>{//泛型类
    public T []array=(T[])new Object[10];//. 类名后的 <T> 代表占位符，表示当前类是一个泛型类

    public T getPosition(int position){
        return this.array[position];
    }
    public void setValue(int position,T value){
        this.array[position]=value;
    }
}
